const Role = require('../models/roles')

class Role_C {
    static async findByPk(req, res) {
        const { id } = req.query
        try {
            const results = await Role.findByPk(id)
            res.json({
                code: 0,
                msg: "服务器请求成功",
                results: results
            })
        } catch (error) {
            res.json({ code: -1, msg: "服务器请求失败", error })
        }
    }
    static async create(req, res) {
        const { name, description,role_code } = req.query
        const created_at = dayjs().format('YYYY-MM-DD HH:mm:ss');
        try {
            const results = await Role.create(created_at, name, description,role_code)
            res.json({
                code: 0,
                msg: "服务器请求成功",
                results: results
            })
        } catch (error) {
            res.json({ code: -1, msg: "服务器请求失败", error })
        }
    }
    // 角色删除--真删除
    static deleterole_t(req, res) {
        let { id } = req.query
        let p = Role.delete_t(id)
        p.then((results) => {
            console.log(results)
            res.json({ code: 0, msg: "角色删除成功！", results })
        }).catch((error) => {
            console.log(error)
            res.json({ code: -1, msg: "角色删除失败！", error })
        })
    }
    // 角色列表搜索--分页
    static role_list_c(req, res) {
        // 其他内容
        // 从请求中获取查询参数
        let { name, page_size, page } = req.query;

        // 提供默认值
        page_size = parseInt(page_size, 5) || 5; // 默认每页10条
        page = parseInt(page, 10) || 1; // 默认第1页

        // 调用role_list函数获取角色列表
        Role.role_list(name, Number(page_size), Number(page))
            .then(roles => {
                // 将角色列表发送给客户端
                res.json({
                    success: true,
                    data: roles,
                    message: '角色列表获取成功'
                });
            })
            .catch(error => {
                // 处理错误，将错误信息发送给客户端
                res.status(500).json({
                    success: false,
                    message: '角色列表获取失败',
                    error: error.message
                });
            });
    };
    // 角色修改设置--set数据
    static edit_set_c(req, res) {
        // 其他内容
        let { id, name, description, rolecode } = req.body
        // 当前时间戳
        // let updatetime = Date.now()
        const updatetime = dayjs().format('YYYY-MM-DD HH:mm:ss');

        let p = Role.edit_set(id, name, description, updatetime, rolecode)
        p.then((results) => {
            console.log(results)
            res.json({ code: 0, msg: "角色修改设置成功！", results })
        }).catch((error) => {
            console.log(error)
            res.json({ code: -1, msg: "角色修改设置失败！", error })
        })
    }
    // 获取角色的所有权限
    static permission_get_c = (req,res) => {
        let { role_id } = req.query
        let p = Role.permission_get(Number(role_id))
        p.then((results) => {
            console.log(results)
            res.json({ code: 0, msg: "角色权限的获取成功！", results })
        }).catch((error) => {
            console.log(error)
            res.json({ code: -1, msg: "角色权限的获取失败！", error })
        })
    }
    // 角色的权限设置
    static expression_set_c = (req, res) => {
        let { role_id, expression_ids } = req.query
        let p = Role.expression_set(Number(role_id), expression_ids)
        p.then((results) => {
            console.log(results)
            res.json({ code: 0, msg: "角色权限的设置成功！", results })
        }).catch((error) => {
            console.log(error)
            res.json({ code: -1, msg: "角色权限的设置失败！", error })
        })
    }
    // 获取全部角色
    static all_role = (req, res) => {
        let p = Role.all_role()
        p.then((results) => {
            console.log(results)
            res.json({ code: 0, msg: "角色获取成功！", results })
        }).catch((error) => {
            console.log(error)
            res.json({ code: -1, msg: "角色获取失败！", error })
        })
    }

}

module.exports = Role_C